Faits :
A.
Par jugement du 15 juin 2017, le Tribunal correctionnel de l'arrondissement de Lausanne a condamné X._, pour infraction simple et grave ainsi que contravention à la LStup, infraction à la LArm, conduite en état d'ébriété qualifiée et sous l'influence de stupéfiants, à une peine privative de liberté de 24 mois, sous déduction de 153 jours de détention avant jugement et de 18 jours à titre de réparation du tort moral pour la détention dans des conditions illicites subie, ainsi qu'à une amende de 600 francs.
B.
Par jugement du 24 octobre 2017, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud, statuant sur les appels formés par X._ et par le ministère public contre ce jugement, a réformé celui-ci en ce sens que le prénommé est condamné à une peine privative de liberté de 36 mois, sous déduction de 153 jours de détention avant jugement et de 18 jours à titre de réparation du tort moral pour la détention dans des conditions illicites subie, ainsi qu'à une amende de 600 francs. Il a confirmé le jugement pour le surplus.
La cour cantonale a retenu les faits suivants.
B.a. X._ est né en 1963 en Espagne, pays dont il est ressortissant. Divorcé, il est père de deux filles majeures. Son casier judiciaire suisse ne comporte aucune inscription.
B.b. Depuis décembre 2009, X._ exploite le magasin A._, à B._, en raison individuelle. Le but de celui-ci est notamment le commerce d'articles divers liés au chanvre. En 2010, le prénommé a engagé C._ en qualité de vendeur.
Le 2 octobre 2013, X._ a été interpellé puis placé en détention jusqu'au 17 décembre 2013, date à laquelle il a été remis en liberté.
B.c. Entre le printemps 2010 et le 1er octobre 2013, X._ et C._, qui agissaient dans le cadre de l'activité du magasin A._, se sont procurés plusieurs milliers de boutures de chanvre qui présentaient un taux de THC supérieur à 1%. Ils ont par la suite vendu toutes ces boutures.
Dans le garage du magasin, entre 2012 et 2013, les deux prénommés ont également produit environ 1'100 boutures de chanvre présentant un taux de THC supérieur à 1% et destinées à la vente. Ils ont par la suite vendu 900 de ces boutures.
L'une de ces ventes a été consentie à un individu mineur.
Ce trafic de boutures de chanvre a rapporté à X._ un chiffre d'affaires compris entre 52'400 et 86'000 fr. et un bénéfice compris entre 20'960 et 34'400 francs.
B.d. Entre juillet 2010 et octobre 2013, X._ et C._ se sont procurés 10'500 graines de chanvre pour des plantes de chanvre présentant une teneur totale en THC de 1% au moins. Ces graines étaient destinées à être vendues dans le cadre de l'activité du magasin A._. Toutes ces graines, à l'exception de 2'000 d'entre elles, ont été vendues par les prénommés.
B.e. Entre début 2012 et octobre 2013, X._ et C._ se sont adonnés à la vente de marijuana. Durant cette période, ils se sont procurés 20 kg de marijuana auprès d'un fournisseur. Sur cette quantité, 15,9 kg ont été pour l'essentiel vendus, ce qui représente un chiffre d'affaires de 127'200 fr. et un bénéfice de 7'950 francs. Un partie de la marijuana a également été consommée par les deux intéressés.
B.f. A B._, le 1er octobre 2013, X._ était détenteur de deux sprays d'autodéfense.
B.g. Entre le 15 juin 2014 et le 1er août 2014, X._ a consommé régulièrement de la marijuana et du haschisch. Entre fin juillet 2014 et le 1er août 2014, il a en outre consommé de la cocaïne.
B.h. Dans son magasin A._, X._ a encore vendu une boîte de graines de chanvre présentant un taux de THC supérieur à 1% en mars 2014, entre 150 et 158 boutures de chanvre présentant un taux de THC supérieur à 1% entre fin juillet et début août 2014, ou encore mensuellement 250 boutures de chanvre présentant un taux de THC supérieur à 1%, soit au total 3'000 boutures, durant l'année 2015, réalisant ainsi un chiffre d'affaires de 30'000 fr. et un bénéfice de 12'000 francs. 268 boutures de chanvre présentant un taux de THC supérieur à 1% ont en outre été saisies lors d'une perquisition effectuée le 7 janvier 2016 dans les locaux de son magasin.
B.i. Durant l'année 2015, X._ a vendu ou offert environ 2 kg de marijuana à divers consommateurs.
B.j. Entre le 2 août 2014 et le 7 janvier 2016, il a également consommé quotidiennement de la marijuana. 1'108,35 g de marijuana ont été saisis à son domicile. L'intéressé destinait ceux-ci à sa propre consommation ainsi qu'à la préparation de tisane.
B.k. Le 1er août 2014, à D._, X._ a été interpellé alors qu'il circulait au volant de sa voiture sous l'influence de l'alcool - présentant une alcoolémie de 0,91 g/kg - et du cannabis, présentant une concentration de 8,5 μg/l dans le sang.
C.
X._ forme un recours en matière pénale au Tribunal fédéral contre le jugement du 24 octobre 2017 en concluant, avec suite de frais et dépens, à sa réforme en ce sens que la peine privative de liberté à laquelle il a été condamné est assortie du sursis partiel à l'exécution, portant sur deux ans. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire.
D.
Par ordonnance du 9 mars 2018, le Tribunal fédéral a rejeté la requête d'assistance judiciaire formée par X._.

Considérant en droit :
1.
Le recourant fait grief à la cour cantonale de ne pas avoir assorti sa peine privative de liberté d'un sursis partiel à l'exécution.
1.1. Aux termes de l'<ref-law>, le juge peut suspendre partiellement l'exécution d'une peine privative de liberté d'un an au moins et de trois ans au plus afin de tenir compte de façon appropriée de la faute de l'auteur (al. 1). La partie à exécuter ne peut excéder la moitié de la peine (al. 2). Tant la partie suspendue que la partie à exécuter doivent être de six mois au moins. Les règles d'octroi de la libération conditionnelle (<ref-law>) ne s'appliquent pas à la partie à exécuter (al. 3).
L'octroi d'un sursis partiel suppose, comme l'octroi du sursis complet (<ref-law>), l'absence de pronostic défavorable (<ref-ruling> consid. 7.4 p. 77 s.). Si le pronostic sur le comportement futur de l'auteur n'est pas défavorable, la loi impose un sursis au moins partiel à l'exécution de la peine (<ref-ruling> consid. 5.3.1 p. 10; plus récemment arrêt 6B_1247/2017 du 28 mai 2018 consid. 2.1). Le sursis total, respectivement partiel, est en effet la règle dont on ne peut s'écarter qu'en présence d'un pronostic défavorable. Il prime en cas d'incertitude (cf. <ref-ruling> consid. 2.1 p. 186; <ref-ruling> consid. 4.4.2). En revanche, un pronostic négatif exclut le sursis partiel. S'il n'existe aucun espoir que le sursis puisse avoir une quelconque influence sur l'auteur, la peine doit être exécutée intégralement (<ref-ruling> consid. 5.3.1 p. 10; plus récemment arrêt 6B_1247/2017 précité consid. 2.1). Pour émettre un pronostic sur le comportement futur de l'auteur, le juge doit se livrer à une appréciation d'ensemble, tenant compte des circonstances de l'infraction, des antécédents de l'auteur, de sa réputation et de sa situation personnelle au moment du jugement, notamment de l'état d'esprit qu'il manifeste. Il doit tenir compte de tous les éléments propres à éclairer l'ensemble du caractère de l'accusé et ses chances d'amendement. Il ne peut accorder un poids particulier à certains critères et en négliger d'autres qui sont pertinents (<ref-ruling> consid. 2.1 p. 185 s.; <ref-ruling> consid. 4.2.1 p. 5). Le juge dispose d'un large pouvoir d'appréciation dans l'émission du pronostic. Le Tribunal fédéral n'intervient que s'il en a abusé (<ref-ruling>40 consid. 4.2 p. 143; plus récemment arrêt 6B_1247/2017 précité consid. 2.1). Selon la jurisprudence, le défaut de prise de conscience de la faute peut justifier un pronostic défavorable (arrêts 6B_1247/2017 précité consid. 2.1; 6B_953/2017 du 28 mars 2018 consid. 5.2; 6B_186/2017 du 5 septembre 2017 consid. 1.1).
1.2. La cour cantonale a indiqué que le recourant avait récidivé en cours d'enquête, ce qui lui avait valu de se retrouver une seconde fois en détention provisoire. Cette récidive était révélatrice de la perception des choses de l'intéressé, selon laquelle il lui appartenait de décider ce qui était légal ou non. Concernant sa collaboration, le recourant n'avait reconnu que ce qu'il considérait comme légal, peu grave, ou ce qui était évident. Les policiers avaient noté dans leur rapport final que les auditions avaient été peu productives en raison notamment du manque de collaboration et de l'arrogance du recourant à leur égard, l'une des auditions ayant par exemple dû être interrompue et l'intéressé reconduit dans son box de maintien tant il vociférait. Par ailleurs, les faits s'étaient déroulés sur des années, le recourant ayant poursuivi son activité malgré l'enquête ouverte à son encontre et une première période de détention provisoire. Sa repentance était nulle et le recourant pensait manifestement que son commerce ne constituait pas un problème pour la société. L'ensemble de ces éléments démontrait que, malgré un casier judiciaire vierge, le pronostic quant au comportement futur du recourant était défavorable, de sorte que le sursis partiel devait lui être refusé.
1.3. L'argumentation du recourant est irrecevable dans la mesure où elle s'écarte de l'état de fait de la cour cantonale, par lequel le Tribunal fédéral est lié (cf. <ref-law>). Il en va ainsi lorsque le recourant prétend qu'il aurait pu se croire, pour son commerce de stupéfiants, au bénéfice d'une "tolérance tacite" de la police, ou qu'il aurait "grandement facilité le déroulement de l'enquête" en tenant un décompte de ses ventes. On voit mal, au demeurant, en quoi ce dernier élément, qui dénote le caractère méthodique du trafic, devrait peser en faveur d'un pronostic non défavorable.
Le recourant soutient que sa propre consommation de stupéfiants constituerait un "élément atténuant", puisqu'elle démontrerait qu'il considère ces substances comme "des cigarettes" qui, si elles n'étaient "pas dangereuses pour lui", "ne l'étaient pas non plus pour des tiers". Sur ce point également, on ne perçoit pas en quoi cette banalisation de la consommation de stupéfiants constituerait un élément fondant un pronostic non défavorable, l'argument du recourant démontrant au contraire une absence complète de prise de conscience. Il en va de même s'agissant de son explication selon laquelle "de plus en plus, en Suisse et dans le monde, tout particulièrement en Californie, on a légalisé la vente de marijuana". Le recourant, en tentant de présenter son trafic comme une erreur vénielle, appuie l'appréciation de la cour cantonale selon laquelle l'intéressé ne fait montre d'aucune repentance.
Le fait qu'une créance compensatrice et les frais de justice eussent été mis à la charge du recourant apparaît par ailleurs - contrairement à ce que prétend ce dernier, qui affirme à cet égard avoir déjà subi une "lourde sanction" - dénué de pertinence concernant la formulation du pronostic. Par ailleurs, l'âge du recourant, son état civil ou encore sa situation familiale - dont ce dernier se prévaut - constituent autant d'éléments ressortant expressément du jugement attaqué et qui n'ont dès lors pas été méconnus par l'autorité précédente.
Enfin, il n'apparaît pas qu'une absence de récidive depuis l'année 2016 serait de nature à modifier le pronostic, étant rappelé que, même si une partie des faits remonte à l'année 2010, le recourant n'a pas hésité, après sa libération de la détention provisoire en décembre 2013, à reprendre son trafic sans désemparer.
Compte tenu de ce qui précède, la cour cantonale n'a pas violé le droit fédéral en formulant un pronostic défavorable et en refusant, en conséquence, d'assortir la peine privative de liberté du recourant d'un sursis partiel à l'exécution. Le grief doit être rejeté dans la mesure où il est recevable.
2.
Le recours doit être rejeté dans la mesure où il est recevable. Le recourant, qui succombe, supportera les frais judiciaires (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
Les frais judiciaires, arrêtés à 3'000 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 6 juillet 2018
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa